package com.hodgepodge.commons.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

/**
 * title ResultCodeEnum
 * projectName colorful-blog
 * desc 自定义响应码枚举
 *
 * @author jiangjian
 * @date 2021/2/2 14:48
 */
@Getter
@AllArgsConstructor
public enum ResultCodeEnum {

    /**
     * 成功
     */
    SUCCESS(200, "操作成功"),

    /**
     * 失败
     */
    FAILED(300, "操作失败"),

    /**
     * 错误
     */
    ERROR(400, "系统错误"),

    /**
     * 参数错误
     */
    PARAM_ERROR(101, "参数错误"),

    /**
     * 参数错误-已存在
     */
    PARAM_INVALID_EXIST(102, "请求参数已存在"),

    /**
     * 参数错误-参数为空
     */
    PARAM_INVALID_EMPTY(103, "请求参数为空"),

    /**
     * 参数错误-类型不匹配
     */
    PARAM_TYPE_MISMATCH(104, "参数类型不匹配"),

    /**
     * 参数错误-校验失败
     */
    PARAM_VALID_ERROR(105, "参数校验失败"),

    /**
     * 非法请求
     */
    ILLEGAL_REQUEST(106, "非法请求"),

    /**
     * 未登录/登录超时
     */
    UNAUTHORIZED(203, "登录超时"),

    /**
     * 验证码错误
     */
    INVALID_CODE(204, "验证码错误"),

    /**
     * 用户名或密码错误
     */
    INVALID_USERNAME_PASSWORD(205, "账号或密码错误"),

    /**
     * 两次输入密码不一致
     */
    INVALID_RE_PASSWORD(206, "两次输入密码不一致"),

    /**
     * 旧密码错误
     */
    INVALID_OLD_PASSWORD(207, "旧密码错误"),

    /**
     * 用户名已存在
     */
    USERNAME_ALREADY_IN(208, "用户名已存在"),

    /**
     * 用户名不存在
     */
    INVALID_USERNAME(209, "用户名不存在"),

    /**
     * 角色不存在
     */
    INVALID_ROLE(210, "角色不存在"),

    /**
     * 角色使用中，不可删除
     */
    ROLE_USED(211, "角色使用中，不可删除"),

    /**
     * 没有权限
     */
    NO_PERMISSION(403, "当前用户无该接口权限");

    /**
     * 状态码
     */
    public int code;

    /**
     * 状态信息
     */
    public String msg;
}
